package stream.demo03;

import java.util.ArrayList;
import java.util.stream.Stream;

//现在有两个ArrayList集合，分别存储6名男演员名称和6名女演员名称，要求完成如下的操作
//1. 男演员只要名字为3个字的前三人
//2. 女演员只要姓林的，并且不要第一个
//3. 把过滤后的男演员姓名和女演员姓名合并到一起
//4. 把上一步操作后的元素作为构造方法的参数创建演员对象(Actor),遍历数据
public class StreamTest {

    //入口
    public static void main(String[] args) {
        //创建两个集合
        ArrayList<String> man = new ArrayList<>();

        ArrayList<String> woman = new ArrayList<>();

        //添加对象
        man.add("梁龙");
        man.add("彭磊");
        man.add("谢天笑");
        man.add("马天宇");
        man.add("高晓松");
        man.add("张亚东");
        woman.add("林青霞");
        woman.add("林岚");
        woman.add("林允儿");
        woman.add("石鹭");
        woman.add("VAVA");
        woman.add("NINEONE");

        //男演员只要名字为3个字的前三人
        Stream<String> manname = man.stream().filter(s -> s.length() == 3);

        //女演员只要姓林的，并且不要第一个
        Stream<String> womanname = woman.stream().filter(s -> s.startsWith("林")).skip(1);

        //把过滤后的男演员姓名和女演员姓名合并到一起
        Stream<String> concat = Stream.concat(manname, womanname);

        //把上一步操作后的元素作为构造方法的参数创建演员对象(Actor),遍历数据

        concat.forEach((s)->{
            Actor actor = new Actor(s);
            System.out.println(s);
        });



    }
}
